package com.zym.pss.cargo.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.zym.pss.baseinfo.po.Material; import com.zym.pss.baseinfo.po.Supplier; import com.zym.pss.baseinfo.service.MaterialService; import com.zym.pss.baseinfo.service.SupplierService; import com.zym.pss.cargo.po.Order; import com.zym.pss.cargo.po.PurchaseOrder; import com.zym.pss.cargo.service.OrderService; import com.zym.pss.cargo.service.PurchaseOrderService; import com.zym.pss.core.controller.BaseController; import com.zym.pss.sysadmin.vo.UserVo; @Controller @RequestMapping("/cargo/purchaseorder") public class PurchaseOrderController extends BaseController{ @Resource OrderService orderService ; //订单Service @Resource private SupplierService supplierService; //提供商Service @Resource private MaterialService materialService ; //原材料Service @Resource private PurchaseOrderService purchaseOrderService ;//采购订单Service //存放列表信息 private List<Order> dataList ; /** * 跳转到采购订单列表页面 */ @RequestMapping("/list.action") public String purchase_list(Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId", curuser.getTenantId()); paraMap.put("orderType", "1"); dataList = orderService.find(paraMap); model.addAttribute("dataList",dataList); model.addAttribute("orderState",Order.ORDER_STATE_MAP); return "/cargo/purchaseorder/jOrderList.jsp" ; } @RequestMapping("/toview.action") public String toview(String id , Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Order obj = this.orderService.get(id); //通过订单编号查询订单下的货物列表 Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("orderNo", obj.getOrderNo()); paraMap.put("tenantId", curuser.getTenantId()); List<PurchaseOrder> goodsList = this.purchaseOrderService.find(paraMap); model.addAttribute("goodsList",goodsList); model.addAttribute("obj",obj); return "/cargo/purchaseorder/jOrderView.jsp"; } /** * 跳到添加页面 */ @RequestMapping("/tocreate.action") public String tocreate(){ return "/cargo/purchaseorder/jOrderCreate.jsp"; } /** * 添加 */ @RequestMapping("/insert.action") public String create(Order order,HttpSession session ){ //获取租户信息 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); String tenantId = curuser.getTenantId() ; order.setTenantId(tenantId); this.orderService.insert(order); return "redirect:/cargo/purchaseorder/list.action"; } /** * 跳到更新页面 */ @RequestMapping("/toupdate.action") public String toupdate(String id,Model model){ Order obj = this.orderService.get(id); if(obj.getState() == 1){ model.addAttribute("obj",obj); return "/cargo/purchaseorder/jOrderUpdate.jsp"; }else{ return "redirect:/cargo/purchaseorder/list.action"; } } /** * 更新 */ @RequestMapping("/update.action") public String update(Order order){ this.orderService.update(order); return "redirect:/cargo/purchaseorder/list.action"; } /** * 批量删除 */ @RequestMapping("/delete.action") public String delete(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 1 ){ this.orderService.delete(new String[]{ids[i]}); } } return "redirect:/cargo/purchaseorder/list.action"; } /** * 上报订单 * @param id * @return */ @RequestMapping("/start.action") public String start(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 1 || o.getState() == 4 ){ //只有当 订单的状态为 未上报/未通过 状态时,才可以上报.其他状态都不可以上报 this.orderService.updateState(new String[]{ids[i]},2); } } return "redirect:/cargo/purchaseorder/list.action"; } @RequestMapping("/check.action") public String check(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 2 ){ //只有当订单状态为待审核状态时,才可以审核 this.orderService.updateState(new String[]{ids[i]},3); } } return "redirect:/cargo/order/orderreview.action"; } /** * 取消订单 * @param ids * @return */ @RequestMapping("/cancel.action") public String cancel(@RequestParam("id")String[] ids){ this.orderService.updateState(ids,1); return "redirect:/cargo/purchaseorder/list.action"; } //---------------------------------------------------------------订单下原材料的CRUD-------------------------------------------------- /** * 跳转到订单原材料添加页面 * @param id * @param model * @return */ @RequestMapping("/toaddmaterial.action") public String toAddMaterial(String orderNo ,Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Map<String,Object> paraMap1 = new HashMap<String,Object>(); paraMap1.put("tenantId", curuser.getTenantId()); //准备原材料下拉列表 List<Material> materialList = this.materialService.find(paraMap1); //准备供应商下拉列表 List<Supplier> supplierList = this.supplierService.find(paraMap1); //查询该订单下的采购信息 Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId", curuser.getTenantId()); paraMap.put("orderNo", orderNo); //获取订单编号 List<PurchaseOrder> purchaseOrderList = this.purchaseOrderService.find(paraMap); //返回到页面 model.addAttribute("materialList",materialList); model.addAttribute("supplierList",supplierList); model.addAttribute("orderNo",orderNo); model.addAttribute("purchaseOrderList",purchaseOrderList); return "/cargo/purchaseorder/jPOMaterialCreate.jsp"; } /** * 给订单添加原材料 * @param OrderId * @param materialNo * @param supplierNo * @param purchaseAmount * @return */ @RequestMapping("/addmaterial.action") public String addMaterial(PurchaseOrder purchaseOrder,String orderNo , Model model,HttpSession session ){ //获取租户信息 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); String tenantId = curuser.getTenantId() ; purchaseOrder.setTenantId(tenantId); this.purchaseOrderService.insert(purchaseOrder); //传递订单ID到 -- 新增+列表页面 model.addAttribute("orderNo", orderNo); return "redirect:/cargo/purchaseorder/toaddmaterial.action"; } /** * 跳转到订单原材料添加页面 * @param id * @param model * @return */ @RequestMapping("/toupdatematerial.action") public String toUpdateMaterial(String id ,String orderNo , Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId", curuser.getTenantId()); //准备原材料下拉列表 List<Material> materialList = this.materialService.find(paraMap); //准备供应商下拉列表 List<Supplier> supplierList = this.supplierService.find(paraMap); //获取要修改的订单原材料信息 PurchaseOrder obj = this.purchaseOrderService.get(id); //返回到页面 model.addAttribute("materialList",materialList); model.addAttribute("supplierList",supplierList); model.addAttribute("obj",obj); //传递订单ID model.addAttribute("orderNo",orderNo); return "/cargo/purchaseorder/jPOMaterialUpdate.jsp"; } /** * 更新采购原材料信息 * @param purchaseOrder * @return */ @RequestMapping("/updatematerial.action") public String updateMaterial(PurchaseOrder purchaseOrder,String orderNo , Model model){ this.purchaseOrderService.update(purchaseOrder); //传递订单ID到 -- 新增+列表页面 return "redirect:/cargo/purchaseorder/toaddmaterial.action?orderNo="+orderNo; } /** * 删除订单下原材料信息 * @param id * @param orderId * @param model * @return */ @RequestMapping("/deletematerial.action") public String deleteMaterial(String id ,String orderNo , Model model){ this.purchaseOrderService.deleteById(id); //跳转到订单原材料添加页面,同时传递订单的编号 return "redirect:/cargo/purchaseorder/toaddmaterial.action?orderNo="+orderNo; } }